This invention relates to transferring data over a low bandwidth network. More particularly, this invention relates to rapid transfer of large map-images in a slow network connection.
When using the Internet, the time it takes for a web page to be loaded in the user""s remote machine is highly critical. The maximum reasonable waiting time is defined to be a matter of seconds (not more than a dozen or two). Common map-transfer methods are based on a process in which the client requests a portion of the map, the server executes the request using a special engine that can dynamically create the desired portion of the map, and the result is sent to the client as an image file (gif, jpeg . . . ). This process is slow and limited, as the size of the resulting image is limited to a few KBytes (not more than several dozen). In addition, any navigation request (including zooming) requires a new xe2x80x98dialogxe2x80x99 with the host server, and a new waiting time for the updated result-image.
When designing a web site, there must be a correlation between the size (in KBxe2x80x94kilobytes) of the elements that it contains (images, sound, animations, special scripts and also the textual information) and the quality of the network connection. It makes no sense to include high-volume elements when the connection is poor and slow. Adapting the size of the web page to the quality of the network is essential in order to achieve a site that can be viewed without having a long waiting time.
Considering the following facts:
A Standard modem connection data-transfer-rate is about 3 KB/s (3 kilobytes per second)
A low detailed image comprising 4 bit color, and 400xc3x97400 pixels occupies about 100 Kb (100 kilo bytes)
A standard screen resolution is 800xc3x97600 (pixels)
Downloading a 400xc3x97400 (pixels) low detailed image, through a standard Internet modem connection takes as long as 30 seconds. A 400xc3x97400 (pixels) image is a relatively large image. It takes about 66% of the size of a standard screen. Most web sites usually contain reduced weight images (like small banners, logos or icons). Those images occupy only a few Kb (maybe a dozen), and so appear sufficiently fast on the client side so that the end user does not wait too long (typically only several seconds).
In other words, as long as a site does not contain large images, it may be viewed relatively fast by the end user (client). The current standard bandwidth (about 3 Kb/s) is fast enough to permit fairly free use of banners, icons, logos and more, on web sites without requiring the end user to wait too long.
However, this breaks down when it is desired to download much larger images from a web site. For example, an image containing 400xc3x974000 pixels, which is ten times larger than in the previous example, would probably occupy about 1000 KB, and it would take around 5 minutes to download. It cannot reasonably expected that most users will wait so long and for this reason, most sites do not contain such large images.
This problem is particularly acute in sites that contain maps. Maps are large and highly detailed pictures. Compressing a map is not so efficient owing to the importance of almost every pixel in the picture. A monochrome GIF image of a low detailed street map of Tel-Aviv would occupy about 1000 Kb and would take some five minutes to download, as explained above.
In order to use large images over the Internet using current methods, either an improved compression algorithm or an extremely high bandwidth connection is required, or both. Neither solution is immediately apparent.
Some attempt has been made to address the need to allow fast data transfer of map data from a server to a client. For example, U.S. Pat. No. 5,966,135 assigned to Autodesk, Inc. of San Rafael, Calif., discloses a method, apparatus, and article of manufacture for a computer implemented geographic information system that enables viewing a map picture that is generated from vector-based data. Map pictures can be generated with vector-based data. Map pictures comprising map objects, such as states and cities created with vector-based data can be viewed. Map objects can be chosen to obtain additional information, for example, a different map picture. Additionally, areas of the map picture can be zoomed in on to view the areas with greater resolution or to obtain additional data about the areas. Furthermore, when a user requests to view a map picture, only the map data required to respond to the user""s request is downloaded to generate a map picture. As a user makes additional requests for information, additional map data is downloaded and new map pictures are generated.
The map data may be layered so that only those layers actually requested by a user need be downloaded thereto, thus saving communication time. It appears that whilst manipulation of the map displayed on the client terminal may be effected, in most cases the actual processing of the map data is done by the map server, which generates and sends fresh map data to the client for display thereby. During the resulting hiatus, a message is presented so as to inform the user that a dynamic map is being processed. Specifically, this processing requires the transmission of complete map data relating to the newly-requested map to the client for display thereby. That this is so derives from the fact that, as noted above, when a user requests to view a map picture, only the map data required to respond to the user""s request is downloaded to generate a map picture. As a user makes additional requests for information, the map data corresponding to the newly-requested map is downloaded from the map server and new map pictures are generated. Thus, after downloading an initial map, if the user wishes to view a location which is current not displayed (i.e. off screen), the displayed image can be panned left, right, up or down using navigation keys. When this is done, a request is sent to the map server, which processes the request, during which time a message is presented so as to inform the user that a dynamic map is being processed.
Likewise, the user can define a window within the displayed map area that he or she would like to see enlarged. This type of manipulation is referred to generally as xe2x80x9czoomingxe2x80x9d but it is important to appreciate that, in fact, two quite different manipulations may be performed. Thus, zooming can be used to increase the resolution at which graphical data is viewed in the computer display screen. Consider, for example, that a user wants to see a street map of New York City and that initially this is the only information the program knows. In this case, a complete map of N.Y. city is downloaded to the user. Clearly, even ignoring considerations of bulk data transfer, communication bandwidth, and so on, the amount of data that can be resolved on the display screen is limited. At best, all that can be seen in a large scale map covering such a large area, are the main arteries possibly including minimal textual data. Any attempt to display more data would result either in the data been miniscule or in one set data obliterating another. In either case, since the data would in any case be illegible, it is not transferred in the initial display. This, of course, accelerates the rate at which the initial map data can be transferred from the map server to the user.
If the user now marks a relatively small area of the complete city map containing a region of interest, then since data is to be displayed at greatly increased scale (i.e. covering a much reduced area), much more data can now be displayed. This data must first be extracted from the map server, and of course, this is accompanied by the usual hiatus and informative message to the user. If the user, zooms in even more, this process is repeated until eventually there comes a point when the extracted map data relates to so small an area, that all the map data relating to this area can be displayed. If the user zooms in even further at this stage, all that can be done is to display the same map data at magnified scale. Thus, the width of streets will become larger as will the size of any descriptive text relating thereto. In this one, specific instance, since no more map data is available for the selected area, there is no requirement to extract different map data from the map server. The response time for displaying the identical map data at higher magnification is therefore almost immediate since only local processing of the locally stored data is required.
Thus, a distinction must be made between that xe2x80x9czoomingxe2x80x9d which allows for map data to be shown at higher resolution and that xe2x80x9czoomingxe2x80x9d which merely displays at enlarged scale (but the same resolution) the same map data. In the first case, more map data than was previously displayed must be shown and this must first be extracted from the map server in order to be available to the map viewer on the user""s machine.
The principal saving in communication time appears therefore to reside in the fact that the map data is stored in compressed vector format.
It would therefore be desirable to propose an alternative approach to downloading large map-images, allowing large maps to be downloaded quickly in a low bandwidth connection from a web site to a client machine, whilst also allowing manipulation of the map data by the client without requiring that the map data be re-processed by the web site.
This requirement is met by a first aspect of the invention by a method for downloading map data from a map server to a client machine connected to the map server, said method comprising the following steps all carried out by the map server:
(a) storing a database of map data relating to a map,
(b) receiving from the client machine a request to download a map of a geographical region forming at least part of the map, and
(a) downloading sufficient map data to the client machine to allow an operator of the client machine to navigate within said geographical region without requiring new map data to be downloaded from the map server.
According to a preferred embodiment, there are stored in the database discrete layers of map data each including geometrical entities associated with a map in minimized vector format and/or descriptive information in text format relating to said geometrical entities. A layer of map data is extracted from the database corresponding to the requested geographical region of the map and downloaded to the client machine. Further layers are extracted and downloaded as required so as to allow progressively more detail to be cached and displayed by the client machine.
In accordance with a second aspect of the invention there is provided a method for downloading and rendering map data from a map server, said method comprising the following steps all carried out by a client machine connected to the map server:
(a) sending to the map server a request to download a geographical region forming at least part of a map from the map server storing map data in a database thereof,
(b) downloading and caching map data from the map server,
(c) displaying at least part of the map data on a display device of the client machine, and
(d) allowing input of navigation commands and responding thereto by displaying different parts of the map data as required without downloading new map data from the map server.
In accordance with a third aspect of the invention there is provided a method for downloading from a web server to a client machine data including a static base component and a dynamic auxiliary component, said method comprising the following steps all carried out by the web server:
(a) downloading the static base component to the client machine for storage and display thereby, and
(b) downloading the dynamic auxiliary component independent of the static component.
In such an embodiment, the static base component may include map data and the dynamic auxiliary component may correspond to advertisements to be displayed on a displayed section of the map in correct spatial relationship thereto according to the location of the advertisement owner.
In accordance with a fourth related aspect of the invention there is provided a method for doing business, including the following steps all carried out by a web server:
(a) maintaining a commercial subscriber database including a plurality of records each containing data relating to commercial subscribers including at least name, address and category,
(b) receiving from a client machine connected thereto a request to download data relating to at least one specified category of commercial subscriber,
(c) extracting from the commercial subscriber database respective records and uploading to the client machine for display thereby,
(d) allowing receipt of an update from one or more commercial subscribers in respect of substitute or supplementary data to that containing in the respective database record of said one or more commercial subscribers,
(e) updating said commercial subscriber database as required,
(f) checking whether a client machine is on-line and has extracted data from the respective database record of said one or more commercial subscribers, and if so
(g) downloading to the client machine the update in respect of each of said one or more commercial subscribers for display on the client machine.
In the preferred embodiment a layer of map data is downloaded from the map server and cached at the client machine. The map data contained in the cached layer is reconstituted and at least part of the map data is displayed on the display device. Whilst displaying the map data on the display device, further layers are downloaded as required so as to allow progressively more detail to be cached and displayed by the client machine.
It is helpful to compare the approach proposed by the invention with that taught by above-mentioned U.S. Pat. No. 5,966,135. Both, in fact, teach layering of the map data so that only those layers actually requested by a user need be downloaded thereto. In particular, a map picture can have several map layers, each map layer providing additional information for the map picture. However, in the case of U.S. Pat. No. 5,966,135, only partial data in each layer is actually extracted from the map server and sent to the client machine, corresponding to that data in each layer which is actually needed by the client machine to display the requested map section. Thus, once a map section is generated and displayed by the client machine, if the user now wishes to view a section of the map that is not currently displayed (i.e. off screen), then the map data in each layer corresponding to the newly-requested map section must be extracted from the map server and downloaded to the client for rendering.
In the present invention, too, the layers identify a grouping of map objects, which are graphical entities and which may have textual descriptive data associated therewith. In particular, a map picture can have several map layers, each map layer providing additional information for the map picture. For example, different layers can contain different road classes, buildings, symbols and so on. However, in the invention the layers are self-contained map data that can be quickly reconstituted independent of the server so as to permit the client machine to render the complete layer or, more typically, a confined area thereof. Moreover, the complete layer is cached by the client machine so as to allow subsequent processing thereof by the client machine independent of the map server. Within the context of the invention, the term xe2x80x9ccachedxe2x80x9d is used to denote that the received data is either held in RAM so as to be immediately accessible when required or that it is archived on disk, if insufficient RAM is available. During this process, further layers may be downloaded and rendered so as to display progressively more detailed map data on the client machine. Thus, initially a single low volume layer containing all class xe2x80x9cAxe2x80x9d roads might be downloaded from the map server to the client machine. Even for a large map area, this process typically takes no more than 40 seconds and gives the viewer the immediate sensation of seeing the complete map section. Once the data is downloaded to the user""s machine, software in the user""s machine decompresses the data and starts to render it (i.e. make is visible to the user). During the time that the initial map data is being rendered, there might be downloaded to the client a subsequent layer containing all class xe2x80x9cBxe2x80x9d roads, this being repeated as often as required until all roads have been downloaded. Thereafter, there might be downloaded another layer containing bridges; and then another layer containing railway tracks; followed by a layer containing footpaths; and so on. The process is repeated in the background layer by layer until a complete map is presented to the viewer. Thus, map data relating to a required map region is downloaded layer by layer, whilst typically only a section of this map data is actually rendered on the user""s display screen. This offers several distinct advantages over hitherto-proposed approaches. First, the user is given the sensation of very much faster response time since initial map layers need not (and generally do not) contain vast data, but only sufficient data to give an overall impression of the requested map. Secondly, during the time that the first layer is being rendered and assimilated by the user, subsequent layers can be downloaded and rendered, thus building up layer by layer a progressively more detailed map. Thirdly, whilst this happens, the viewer can work on the map data that has already been downloaded. For example, he can zoom in on an area of the map so as to magnify the scale thereof and allow data to be displayed at higher resolution. That is to say, data that was originally not displayed since it could not be shown legibly, can now be shown because such data is to be shown for a sufficiently small area of the complete map. However, the data itself that is now to be rendered has already been downloaded to the client machine. Thus, there is no need to process the data on the map server in order to generate fresh map data, and then download the fresh map data to the client machine.
In U.S. Pat. No. 5,966,135, when zooming in on an area requires obtaining additional map data, the map viewer reads a map window file to obtain the location of the additional map data, i.e. on which map server it is stored. The map viewer downloads this newly-requested map data from the specified map server and generates a new map picture with the new data. Then, the map viewer displays this new map picture. The requirement to download new data from the map server to the client machine each time additional map data is to be shown is time-consuming, particularly in low-bandwidth communication channels.
Only when zooming requires that an area be viewed at merely higher magnification, as explained in detail above, because the map picture is generated with vector-based data that has already been downloaded, the map viewer is able to immediately generate a new map picture with the resolution requested using the vector-based data.
Part of the motivation behind the invention is the understanding that maps are not conventional pictures but rather can be represented as a collection of vertices and names (xe2x80x9cmap dataxe2x80x9d). This representation is well known as Vector representation. This xe2x80x9cmap dataxe2x80x9d consists of numbers (for vertices) and ASCII-codes (for street names), which can be easily compressed with a meaningful compression rate. After handling the data and compressing it, clients receiving this information must be able to reconstruct it into a drawing of a map. For this, there is provided a low volume module that occupies less than 5 Kb, and can be easily plugged into an HTML page (as an applet for example). Such an approach allows a breakthrough in downloading maps over a slow network like the modem Internet connection.
The invention enables the transfer over the Internet, on a low bandwidth connection, of a highly detailed map that covers a large enough region for representing a full activity ring (e.g. a city), within a matter of seconds. Specifically, the map data that is downloaded to the client machine extends well beyond the boundary of immediate interest, thus allowing navigation beyond the boundary of immediate interest without the need to download new data from the map server. Thus, the fact that all the information representing the desired ring, (including the engine that actually draws the map), are transferred to the client machine, permits immediate and free navigation on the map without repeated need of the host server""s services. This method relies on the fact that the engine transferred to the client is low volume (less than 5 Kb) and its loading waiting time is negligible. Furthermore, even when faster communications can be achieved, the invention will continue to show an improvement over current approaches allowing the transfer of approximately six times the region that can be covered by the maps transferred using standard techniques. More significantly, sufficient map data is transferred to the client machine to allow extensive navigation without requiring the transfer of more map data.
The method and system according to a preferred embodiment of the invention rely on two major components:
i. Map server application.
ii. Map client application.
Map Server Application
The Map server application awaits connection of clients and serves them as they arrive. Among its features as a server application it has several unique features. It supplies compressed data packets, and section of a map in Vector representation to the connected clients. Each one of these packets can be individually and independently transformed to a drawing, without being dependent on other packets. That is to say, each packet is independent and relates to independent features of the same map and so the engine can draw each packet as it arrives. This enhances the impression of immediate response since the client computer can receive a relatively small map section and display a corresponding image substantially immediately, there being no need to await the arrival of contiguous map sections or auxiliary map data of any kind.
The Map server""s data streaming process is so designed as to leave the user with the impression of a highly fast network connection.
The Map Client Application
The Map client application is complementary to the Map server application and has two versions:
a. Application
b. Applet
The client performs the following operations:
i. Retrieving and handling the compressed data packet.
ii. Reconstructing the data into an accurate map section.
The Map client application can be easily plugged into an existing HTML page; it is designed to be a fully portable across different browsers and platforms and can be accessed from the two major Internet browsers (Internet Explorer 4 and later versions and Netscape 3.0 and later versions).